home *** CD-ROM | disk | FTP | other *** search
/ Celestin Apprentice 4 / Apprentice-Release4.iso / Languages / Oberon⁄F™ 1.1 / Manuals / Changes (.txt) < prev    next >
Encoding:
Oberon Document  |  1995-08-10  |  15.6 KB  |  104 lines  |  [oODC/obnF]

  1. Documents.StdDocumentDesc
  2. Documents.DocumentDesc
  3. Containers.ViewDesc
  4. Views.ViewDesc
  5. Stores.StoreDesc
  6. Documents.ModelDesc
  7. Containers.ModelDesc
  8. Models.ModelDesc
  9. Stores.ElemDesc
  10. TextViews.StdViewDesc
  11. TextViews.ViewDesc
  12. TextModels.StdModelDesc
  13. TextModels.ModelDesc
  14. TextModels.AttributesDesc
  15. Helvetica
  16. Helvetica
  17. Helvetica
  18. Helvetica
  19. TextRulers.StdRulerDesc
  20. TextRulers.RulerDesc
  21. TextRulers.StdStyleDesc
  22. TextRulers.StyleDesc
  23. TextRulers.AttributesDesc
  24. Changes between Releases 1.0 and 1.1
  25. The first update of Oberon/F
  26. Release 1.1 is the first major upgrade of Oberon/F. It corrects several errors of Release 1.0, adds some new features, streamlines a couple of existing features, and provides more robust error handling. Furthermore, it has a more systematically constructed documentation, as well as many new examples.
  27. Controls, guards, and notifiers
  28. The most important area where improvements have been made is in the area of controls and dialogs. There now is support for the important list box, selection box, and combo box controls, as well as a group control which allows to visually combine related controls.
  29.     Control guards now make it possible to adapt a control's state as a reaction to a state change in another control, e.g. when a text field becomes empty, a button may be disabled.
  30.     Control notifiers are a new feature which make it possible to add behavior to controls, e.g. notifier commands may be called when a command button is pressed or released, or when the selection in a selection box is changed.
  31. Commands with parameters
  32. Control guard commands, as well as menu guards, have been made more convenient by giving them parameters. Traditionally, Oberon commands have been parameterless procedures. In Release 1.1 however, commands may have parameters. This made it possible to eliminate the "pseudo-commands" of Release 1.0, i.e. commands with parameters which were only known to the command interpreter (i.e. to the Dialog.Call procedure).
  33.     To see the typical use of parameterized commands, look at the menu definition text (item "Menus" in menu "Info"), or consult the documentation of module StdCmds.
  34.     Several of the (previously pseudo-)commands now support a portable file name syntax. In order to be compatible with the World-Wide-Web notation, the Unix path name syntax was chosen.
  35. Incremental updates and electronic distribution
  36. In order to allow incremental upgrades in the future, the Oberon/F core is not linked anymore, i.e. each module (except for a few kernel modules) can be updated individually, simply by replacing its code file. A new tool (StdCoder) was added which allows to  distribute binary files via ASCII channels, e.g. via Internet mails. The encoding is chosen such that it is robust and survives transmission via all mail software known to the developers.
  37. An extensible conversion mechanism
  38. The file conversion facility of Release 1.1 is much improved over its predecessor, and made public such that anyone can write his or her own file import or export commands, e.g. to import RTF texts or to export text in HTML format. See module Converters.
  39. Improved texts, and new tools
  40. The text subsystem has improved rulers. They make it possible to leave right margins unspecified, which means that the text view's right border defines the margin instead. The line breaking of such a text adapts to every change of the view's size, a useful feature for embedded text views.
  41.     The text model now lets Unicode (16-bit) characters to be stored in texts. On platforms which support Unicode fonts (currently this is only Windows NT) it is now possible to use foreign language characters, a variety of mathematical symbols, etc.
  42.     Text controllers have been modified to make text stretches active by inserting a pair of link views (of the new module StdLinks) into the text. If the text is in mask or in browser mode, a click on the text stretch between the delimiting views invokes an arbitrary command stored in one of the views. This makes it possible to implement look-up commands, e.g. text runs looking and behaving like World-Wide-Web links, or acting like command buttons, etc. The browser mode is a new text controller mode which makes it possible to use link views as described above, but simultaneously select text (i.e. find & replace works in this mode, and text stretches can be copied out from such texts). Text cannot be edited, however. This is the recommended mode for documentation texts.
  43.     Fold views (module StdFolds) allow to fold text into smaller text pieces, e.g. to collapse a paragraph into its headline.
  44.     A new "wizard" automatically creates source code templates for typical view implementations, thus simplifying view programming (module StdSubTool).
  45. The Oberon/F core
  46. The Oberon/F core module interfaces have been slightly extended or streamlined. Domains have become simpler, while module Math has been much expanded. Module Dialog was moved down to the basic Oberon/F library modules. The type-bound procedures of a Dialog.Interactor have been replaced by more flexible global procedures. The procedures for reading, opening, and writing views in module Views have been generalized and are more orthogonal now.
  47.     Most symbol files, even of private modules, are now distributed. The use of private modules is not recommended and no support or documentation for them is provided, however.
  48.     Module Stores has been simplified, by eliminating the procedures Stores.Store.Clone, Stores.Store.Init, and the flag Stores.Store.init. Models have received two new interface procedures, namely Models.Model.CopyAllFrom and Models.Model.InitFrom. In Views, the type-bound procedure Views.View.CopyModelFrom has been replaced by the global procedure CopyModel, and the new procedure Views.View.InitModel was added.
  49. Documentation and Obx
  50.     The documentation has been extended and is now better structured, e.g. there is now a docu file for each top-level module. Some previously private modules are now documented, e.g. Containers, Properties, Converters, Controls.
  51.     The examples collection has been extended and is now better structured as well. There are new examples such as a mail merge command, an interesting game, a calculator, and many more. Like the rest of the documentation, the examples collection ("Oberon by Example", or Obx) can be accessed conveniently via the new hyperlinks.
  52. User interface aspects
  53. The user interfaces of both the Windows and the Macintosh have been improved further. Some rarely used commands have disappeared (Log Settings..., Paste to Window), some new menus (Tools) and menu items (View State, Edit Mode, Mask Mode, Layout Mode) have been added, and some of the existing menu items have been adapted to more closely adapt to the (evolving) user interface guidelines of their respective host platforms.
  54.     The Windows version now sports the 3-D Windows look of Windows 95. The Macintosh version menus have been made similar to the standard OpenDoc menus; as currently specified by Apple. The planned migration of Oberon/F to OpenDoc (due in phases sta
  55. . Domains.Domain.init, Domains.Domain.shared, Domains.shared, Domains.exclusive have disappeared.
  56. Dialog
  57. In order to make more powerful controls possible, new interactors have been added (Dialog.Combo, Dialog.LargeSet), and the procedures Dialog.Update and Dialog.CheckGuards have been introduced. They replace the Notify and CheckGuards procedures of Release 1.0 interactors. Replace
  58.   interactor.Notify    by    Dialog.Update(interactor)
  59.   interactor.CheckGuards    by    Dialog.CheckGuards.
  60. In general, a sequence of one or more calls of Dialog.Update should be followed by one call to Dialog.CheckGuards.
  61. Standard file dialogs have been made simpler and more powerful, by providing separate interfaces for standard file dialogs for Oberon/F documents and for standard file dialogs for other files.
  62. If you've used Dialog.GetIntSpec or Dialog.GetExtSpec to manipulate documents that contain views, then you should adapt your code such that Dialog.GetIntSpec and Views.OldView are combined, or Dialog.GetExtSpec and Views.RegisterView, respectively:
  63.   Dialog.GetIntSpec(type, stationary, loc, name)    by    loc := ...; name := ...; conv := NIL;
  64.         v := Views.Old(Views.ask, loc, name, conv)
  65.   Dialog.GetExtSpec(default, type, stationary, loc, name)    by    loc := ...; (* e.g. same as result of Views.Old *)
  66.         name := ...; (* e.g. same as result of Views.Old *)
  67.         conv := NIL; (* or same as result of Views.Old *)
  68.         Views.Register(v, Views.ask, loc, name, conv,
  69.                                 res)
  70. On the other hand, if you've used Dialog.GetIntSpec or Dialog.GetExtSpec to manipulate files directly, then make the following replacements (i.e. eliminate stationary):
  71.   Dialog.GetIntSpec(type, stationary, loc, name)    by    Dialog.GetIntSpec(type, loc, name)
  72.   Dialog.GetExtSpec(default, type, stationary, loc, name)    by    Dialog.GetExtSpec(default, type, loc, name)
  73. The internal variables Dialog.background and Dialog.maxBorderSize have disappeared.
  74. The global variable Dialog.par and procedure Dialog.Disable are not necessary anymore, since guard commands now have parameters. Replace
  75.  PROCEDURE MyGuard;
  76.  BEGIN
  77.    IF ... THEN Dialog.Disable END
  78.  END MyGuard;
  79.  PROCEDURE MyGuard (par: Dialog.Par);
  80.  BEGIN
  81.    IF ... THEN par.disabled := TRUE END
  82.  END MyGuard;
  83. Fonts
  84. Fonts.Directory.System has disappeared, you should use Fonts.Directory.Default instead.
  85. Ports
  86. The new procedure Ports.RGBColor constructs a color out of its red, green, and blue components.
  87. Stores
  88. The new procedure Stores.SameType checks whether two stores have exactly the same type.
  89. Views
  90. Views.Frame.target has been replaced by Views.Frame.front.
  91. The procedure Views.View.InitModel has been added. Views with models should extend this procedure.
  92. The new procedure Views.HandlePropMsg should be used in containers, instead of calling an embedded view's HandlePropMsg directly. The semantics remain the same, but traphandling is made more robust.
  93. The new procedures Views.OldView, Views.OpenView, and Views.RegisterView have been added as shortcuts for Views.Old, Views.Open, and Views.Register. Make the following replacements (with conv: Converters.Converter):
  94.  Views.Open(view, NIL, "")    by    Views.OpenView(view)
  95.  Views.Open(view, loc, name)    by    conv := NIL;
  96.         Views.Open(view, loc, name, conv)
  97. See also the discussion of Dialog.GetIntSpec and Dialog.GetExtSpec above.
  98. TextControllers.StdCtrlDesc
  99. TextControllers.ControllerDesc
  100. Containers.ControllerDesc
  101. Controllers.ControllerDesc
  102. Helvetica
  103. Documents.ControllerDesc
  104.